#!python
#
# Main application for generating some pyste files
#


fileCounter = 0   # Global counter to track the file we are generating (needed in name)
classToFileMap = {}  # Map Class to pyste file for it
      
# Preset mappings
classToFileMap["FieldContainer"] = "FieldContainer.pyste"

# --- Helper methods ----- #

def genExcludesAndPolicies(classVarName, excludes, policies, line_start = ""):
   " Generate text for excludes and policies."
   ret_val = "\n"
   
   for x in excludes:
      ret_val += line_start + "exclude(%s.%s)\n"%(classVarName,x)
      
   for p in policies:
      ret_val += line_start + "set_policy(%s.%s, %s)\n"%(classVarName,p[0],p[1])   
      
   return ret_val
   
def genFCFile(coreInfo):
   global fileCounter
   global classToFileMap
   fileCounter += 1
   
   subst_dict = {'ClassName' : coreInfo[0],
                 'BaseClass' : coreInfo[1],
		 'BaseExcludesAndPolicies' : genExcludesAndPolicies('base_c',coreInfo[2],coreInfo[3], "   "),
		 'ClassExcludesAndPolicies' : genExcludesAndPolicies('c',coreInfo[4],coreInfo[5]),
                 'BasePysteFileName' : classToFileMap[coreInfo[1]],
                 'Includes' : coreInfo[6],
                 'HasBase' : coreInfo[7],
                 'FileCounter' : fileCounter }
   file_contents = """#!python
#
#  GENERATED FILE -- DO NOT EDIT -- GENERATED FILE -- DO NOT EDIT
#  GenSortOrder:%(FileCounter)s
# Pyste file for %(ClassName)s class
#
for inc in %(Includes)s:
   Include(inc)
Include("OsgPtrHelpers.h")
Import("%(BasePysteFileName)s")

if %(HasBase)s:
   base_c = Class('osg::%(ClassName)sBase', 'OpenSG/OSG%(ClassName)sBase.h')
   final(base_c)
   %(BaseExcludesAndPolicies)s
   set_policy(base_c.getType, return_internal_reference(1))
   set_policy(base_c.getClassType, return_internal_reference(1))

c = Class('osg::%(ClassName)s', 'OpenSG/OSG%(ClassName)s.h')
holder(c, lambda x: "osg::%(ClassName)sRefPtr")
final(c)
%(ClassExcludesAndPolicies)s
set_policy(c.getType, return_internal_reference(1))
set_policy(c.getClassType, return_internal_reference(1))
exclude(c.getClass)
exclude(c.getStaticClass)

module_code(\"\"\"
    register_ptr_to_python<osg::%(ClassName)sPtr>();
    implicitly_convertible<osg::%(ClassName)sRefPtr, osg::%(ClassName)sPtr>();
    implicitly_convertible<osg::%(ClassName)sPtr, osg::%(BaseClass)sPtr>();
    
    def("RefPtr", &pyopensg::ToRefPtr<osg::%(ClassName)sPtr>);
    def("FCPtr", &pyopensg::ToFcPtr<osg::%(ClassName)sPtr>);
\"\"\")
""" % subst_dict

   file_name = 'gen_%s.pyste'% coreInfo[0]
   classToFileMap[coreInfo[0]] = file_name

   old_contents = ""
   try:
      old_file = file(file_name, 'r')
      old_contents = old_file.read()
   except:
      pass
   
   if old_contents != file_contents:      
      print "Generating: ", file_name
      pyste_file = file(file_name, 'w')
      pyste_file.write(file_contents)
      pyste_file.close()
   
   

# ------------ Data output and generation --------------- #

# --- Node Core's ------ #
# Core data
# [ Class Name, Base Name,
#  [ List of base class excludes ], [List of base class policies],
#  [ List of derived class excludes ], [List of derived class policies],
#  [ Includes ],
#  <has_base> ]
#
#  Has base is true when type is one of the ones generated by fcdedit
# and thus it has a base class (ClassBase).
#

attachment_container_info = ["AttachmentContainer", "FieldContainer",
   [],
   [],
   [],
   [('getSFAttachments', 'return_internal_reference(1)'),],
   [],
   False ]
genFCFile(attachment_container_info)

attachment_info = ["Attachment", "FieldContainer",
   [],
   [],
   ['getMFParents','getSFInternal'],
   [('getParents', 'return_value_policy(copy_const_reference)'),
   ('getInternal', 'return_value_policy(copy_const_reference)')],
   [],
   False ]
genFCFile(attachment_info)

attachment_info = ["Node", "AttachmentContainer",
   [],
   [],
   [],
   [('getSFVolume', 'return_internal_reference(1)'),
   ('getSFTravMask', 'return_internal_reference(1)'),
   ('getSFParent', 'return_internal_reference(1)'),
   ('getSFCore', 'return_internal_reference(1)'),
   ('getMFChildren', 'return_internal_reference(1)'),
   ('getVolume', 'return_internal_reference(1)'),],
   ['OpenSG/OSGNodePtr.h',],
   False ]
genFCFile(attachment_info)
   
# ------ CORES -------- #
fileCounter = 100   
node_core_info = ["NodeCore", "AttachmentContainer",
   [],
   [],
   [],
   [('getParents', 'return_internal_reference(1)'),
    ('getMFParents', 'return_internal_reference(1)'),
    ('setSFAttachments', 'return_internal_reference(1)'),
    ('getField', 'return_internal_reference(1)') ],
   [],
   False ]   
genFCFile(node_core_info)

group_core_info = ["Group", "NodeCore",
    [],
    [],
    [],
   [],
    [], True ]
genFCFile(group_core_info)

transform_core_info = ["Transform", "Group",
    ['getSFMatrix',],
    [ ('getMatrix', 'return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(transform_core_info)

billboard_core_info = ["Billboard", "Group",
    ['getSFAxisOfRotation','getSFFocusOnCamera','getSFAlignToScreen','getSFMinAngle','getSFMaxAngle'],
    [('getAxisOfRotation','return_value_policy(copy_const_reference)'),
    ('getFocusOnCamera','return_value_policy(copy_const_reference)'),
    ('getAlignToScreen','return_value_policy(copy_const_reference)'),
    ('getMinAngle','return_value_policy(copy_const_reference)'),
    ('getMaxAngle','return_value_policy(copy_const_reference)')
    ],
    [],
   [],
    [], True ]
genFCFile(billboard_core_info)

distlod_core_info = ["DistanceLOD", "Group",
    ['getSFCenter', 'getMFRange'],
    [('getCenter','return_value_policy(copy_const_reference)'),
    ('getRange','return_value_policy(reference_existing_object)')
    ],
    [],
   [],
    [], True ]
genFCFile(distlod_core_info)

invtrans_core_info = ["InverseTransform", "Group",
    [],
    [],
    [],
   [],
    [], True ]
genFCFile(invtrans_core_info)

matgroup_core_info = ["MaterialGroup", "Group",
    ['getSFMaterial'],
    [('getMaterial','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(matgroup_core_info)

switch_core_info = ["Switch", "Group",
    ['getSFChoice'],
    [('getChoice','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(switch_core_info)

comp_xform_core_info = ["ComponentTransform", "Transform",
    ['getSFCenter','getSFRotation','getSFScale','getSFScaleOrientation','getSFTranslation'],
    [('getCenter','return_value_policy(copy_const_reference)'),
    ('getRotation','return_value_policy(copy_const_reference)'),
    ('getScale','return_value_policy(copy_const_reference)'),
    ('getScaleOrientation','return_value_policy(copy_const_reference)'),
    ('getTranslation','return_value_policy(copy_const_reference)')
    ],
    [],
   [],
    [], True ]
genFCFile(comp_xform_core_info)

drawable_core_info = ["Drawable", "NodeCore",
    [],
    [],
    [],
   [],
    [], True ]
genFCFile(drawable_core_info)


matdrawable_core_info = ["MaterialDrawable", "Drawable",
    ['getSFMaterial'],
    [('getMaterial','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(matdrawable_core_info)

geom_core_info = ["Geometry", "MaterialDrawable",
    ['getSFTypes','getSFLengths','getSFPositions','getSFNormals','getSFColors','getSFSecondaryColors',
     'getSFTexCoords','getSFTexCoords1','getSFTexCoords2','getSFTexCoords3',
     'getSFIndices','getMFIndexMapping','getSFDlistCache','getSFIgnoreGLForAspect'],
    [('getTypes','return_value_policy(copy_const_reference)'),
     ('getLengths','return_value_policy(copy_const_reference)'),     
     ('getPositions','return_value_policy(copy_const_reference)'),
     ('getNormals','return_value_policy(copy_const_reference)'),
     ('getColors','return_value_policy(copy_const_reference)'),
     ('getSecondaryColors','return_value_policy(copy_const_reference)'),
     ('getTexCoords','return_value_policy(copy_const_reference)'),
     ('getTexCoords1','return_value_policy(copy_const_reference)'),
     ('getTexCoords2','return_value_policy(copy_const_reference)'),
     ('getTexCoords3','return_value_policy(copy_const_reference)'),
     ('getIndices','return_value_policy(copy_const_reference)'),
     ('getDlistCache','return_value_policy(copy_const_reference)'),
     ('getIgnoreGLForAspect','return_value_policy(copy_const_reference)'),
     ('getIndexMapping','return_value_policy(copy_const_reference)'),],
    [],
    [('getProperty','return_value_policy(copy_const_reference)'),], 
   [],
    True ]
genFCFile(geom_core_info)

#particles_core_info = ["Particles", "MaterialDrawable",
#    ['getSFMode','getSFPositions','getMFSizes','getSFSecPositions','getSFColors','getSFnormals',
#     'getMFIndices','getMFTextureZs','getSFDrawOrder','getSFDynamic','getSFBsp'],
#    [],
#    [],
#   [],
#    [] ]
#genFCFile(particles_core_info)

slices_core_info = ["Slices", "MaterialDrawable",
    ['getSFSize','getSFSliceDistance'],
    [('getSize','return_value_policy(copy_const_reference)'),
     ('getSliceDistance','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(slices_core_info)

light_core_info = ["Light", "NodeCore",
    ['getSFAmbient','getSFDiffuse','getSFSpecular','getSFBeacon','getSFOn',
     'getSFConstantAttenuation','getSFLinearAttenuation','getSFQuadraticAttenuation'],
    [('getAmbient','return_value_policy(copy_const_reference)'),
     ('getDiffuse','return_value_policy(copy_const_reference)'),
     ('getSpecular','return_value_policy(copy_const_reference)'),
     ('getBeacon','return_value_policy(copy_const_reference)'),
     ('getOn','return_value_policy(copy_const_reference)'),
     ('getConstantAttenuation','return_value_policy(copy_const_reference)'),
     ('getLinearAttenuation','return_value_policy(copy_const_reference)'),
     ('getQuadraticAttenuation','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(light_core_info)

dirlight_core_info = ["DirectionalLight", "Light",
    ['getSFDirection'],
    [('getDirection','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(dirlight_core_info)

ptlight_core_info = ["PointLight", "Light",
    ['getSFPosition'],
    [('getPosition','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(ptlight_core_info)

spotlight_core_info = ["SpotLight", "PointLight",
    ['getSFDirection','getSFSpotExponent','getSFSpotCutOff'],
    [('getDirection','return_value_policy(copy_const_reference)'),
     ('getSpotExponent','return_value_policy(copy_const_reference)'),
     ('getSpotCutOff','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(spotlight_core_info)


# -------- Windows and viewports ------- #
fileCounter = 200

window_info = ["Window", "AttachmentContainer",
    ['getSFWidth','getSFHeight','getMFPort','getSFResizePending',
     'getFunction','getFunctionNoCheck','getFunctionByName'],
    [('getWidth','return_value_policy(copy_const_reference)'),
    ('getHeight','return_value_policy(copy_const_reference)'),
    ('getResizePending','return_value_policy(copy_const_reference)'),
    ('getPort','return_value_policy(copy_const_reference)'),
    ],
    ['getFunction','getFunctionNoCheck','getFunctionByName'],
   [],
    [], True ]
genFCFile(window_info)

glut_window_info = ["GLUTWindow", "Window",
    ['getSFId',],
    [('getId','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(glut_window_info)

passive_win_info = ["PassiveWindow", "Window",
    [],
    [],
    [],
    [],
    [], True ]
genFCFile(passive_win_info)


cluster_win_info = ["ClusterWindow", "Window",
    ['getMFServers','getSFConnectionType','getSFConnectionInterface','getSFConnectionDestination',
     'getSFConnectionParams','getSFServicePort','getSFServiceAddress','getSFClientWindow',
      'getSFInterleave','getSFFrameCount','getSFComposer','getMFAutostart','getMFCalibration'],
    [('getConnectionType','return_value_policy(copy_const_reference)'),
     ('getConnectionInterface','return_value_policy(copy_const_reference)'),
     ('getConnectionDestination','return_value_policy(copy_const_reference)'),
     ('getConnectionParams','return_value_policy(copy_const_reference)'),
     ('getServicePort','return_value_policy(copy_const_reference)'),
     ('getServiceAddress','return_value_policy(copy_const_reference)'),
     ('getClientWindow','return_value_policy(copy_const_reference)'),
     ('getInterleave','return_value_policy(copy_const_reference)'),
     ('getFrameCount','return_value_policy(copy_const_reference)'),
     ('getComposer','return_value_policy(copy_const_reference)'),
     ('getServers','return_value_policy(copy_const_reference)'),
     ('getAutostart','return_value_policy(copy_const_reference)'),
     ('getCalibration','return_value_policy(copy_const_reference)'),],
    [],
    [('getFunctionByName','return_value_policy(copy_const_reference)'),
     ('getNetwork','return_value_policy(copy_const_reference)'),
     ('getStatistics','return_value_policy(copy_const_reference)'),
     ('what','return_value_policy(copy_const_reference)'),],
    [], True ]
genFCFile(cluster_win_info)


md_win_info = ["MultiDisplayWindow", "ClusterWindow",
    ['getSFHServers','getSFVServers','getSFManageClientViewports','getSFXOverlap','getSFYOverlap',],
    [('getHServers','return_value_policy(copy_const_reference)'),
     ('getVServers','return_value_policy(copy_const_reference)'),
     ('getManageClientViewports','return_value_policy(copy_const_reference)'),
     ('getXOverlap','return_value_policy(copy_const_reference)'),
     ('getYOverlap','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(md_win_info)


sf_win_info = ["SortFirstWindow", "ClusterWindow",
    ['getSFCompression','getSFSubtileSize','getSFCompose','getMFRegion','getSFUseFaceDistribution',],
    [('getCompression','return_value_policy(copy_const_reference)'),
     ('getSubtileSize','return_value_policy(copy_const_reference)'),
     ('getCompose','return_value_policy(copy_const_reference)'),
     ('getUseFaceDistribution','return_value_policy(copy_const_reference)'),
     ('getRegion','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(sf_win_info)

# Viewports
vp_info = ["Viewport", "AttachmentContainer",
    ['getSFLeft','getSFRight','getSFBottom','getSFTop','getSFParent','getSFCamera',
     'getSFRoot','getSFBackground','getMFForegrounds','getSFTravMask','getSFDrawTime',],
    [('getLeft','return_value_policy(copy_const_reference)'),
     ('getRight','return_value_policy(copy_const_reference)'),
     ('getBottom','return_value_policy(copy_const_reference)'),
     ('getTop','return_value_policy(copy_const_reference)'),
     ('getParent','return_value_policy(copy_const_reference)'),
     ('getCamera','return_value_policy(copy_const_reference)'),
     ('getRoot','return_value_policy(copy_const_reference)'),
     ('getBackground','return_value_policy(copy_const_reference)'),
     ('getTravMask','return_value_policy(copy_const_reference)'),
     ('getDrawTime','return_value_policy(copy_const_reference)'),
     ('getForegrounds','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(vp_info)


cb_vp_info = ["ColorBufferViewport", "Viewport",
    ['getSFRed','getSFBlue','getSFGreen','getSFAlpha'],
    [('getRed','return_value_policy(copy_const_reference)'),
    ('getBlue','return_value_policy(copy_const_reference)'),
    ('getGreen','return_value_policy(copy_const_reference)'),
    ('getAlpha','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(cb_vp_info)

passive_vp_info = ["PassiveViewport", "Viewport",
    [],
    [],
    [],
    [],
    [], True ]
genFCFile(passive_vp_info)


'getLeftBuffer',
'getRightBuffer',

stereo_vp_info = ["StereoBufferViewport", "Viewport",
    ['getSFLeftBuffer','getSFRightBuffer',],
    [],
    [],
    [],
    [], True ]
genFCFile(stereo_vp_info)



# -------- Materials --------- #
fileCounter = 300

material_info = ["Material", "AttachmentContainer",
    ['getSFSortKey'],
    [('getSortKey','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(material_info)

chunk_material_info = ["ChunkMaterial", "Material",
    ['getMFChunks','getMFSlots'],
    [('getChunks','return_value_policy(copy_const_reference)'),
    ('getSlots','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(chunk_material_info)

fres_material_info = ["FresnelMaterial", "Material",
    ['getSFAmbient','getSFDiffuse','getSFSpecular','getSFShininess','getSFEmission','getSFTransparency',
     'getSFLit','getSFColorMaterial','getSFIndex','getSFScale','getSFBias','getSFImage'],
    [('getAmbient','return_value_policy(copy_const_reference)'),
    ('getDiffuse','return_value_policy(copy_const_reference)'),
    ('getSpecular','return_value_policy(copy_const_reference)'),
    ('getShininess','return_value_policy(copy_const_reference)'),
    ('getEmission','return_value_policy(copy_const_reference)'),
    ('getTransparency','return_value_policy(copy_const_reference)'),
    ('getLit','return_value_policy(copy_const_reference)'),
    ('getColorMaterial','return_value_policy(copy_const_reference)'),
    ('getIndex','return_value_policy(copy_const_reference)'),
    ('getScale','return_value_policy(copy_const_reference)'),
    ('getBias','return_value_policy(copy_const_reference)'),
    ('getImage','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(fres_material_info)


phong_material_info = ["PhongMaterial", "Material",
    ['getSFAmbient','getSFDiffuse','getSFSpecular','getSFShininess','getSFEmission','getSFTransparency',
     'getSFLit','getSFColorMaterial'],
    [('getAmbient','return_value_policy(copy_const_reference)'),
    ('getDiffuse','return_value_policy(copy_const_reference)'),
    ('getSpecular','return_value_policy(copy_const_reference)'),
    ('getShininess','return_value_policy(copy_const_reference)'),
    ('getEmission','return_value_policy(copy_const_reference)'),
    ('getTransparency','return_value_policy(copy_const_reference)'),
    ('getLit','return_value_policy(copy_const_reference)'),
    ('getColorMaterial','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(phong_material_info)


simp_material_info = ["SimpleMaterial", "Material",
    ['getSFAmbient','getSFDiffuse','getSFSpecular','getSFShininess','getSFEmission','getSFTransparency',
     'getSFLit','getSFColorMaterial'],
    [('getAmbient','return_value_policy(copy_const_reference)'),
    ('getDiffuse','return_value_policy(copy_const_reference)'),
    ('getSpecular','return_value_policy(copy_const_reference)'),
    ('getShininess','return_value_policy(copy_const_reference)'),
    ('getEmission','return_value_policy(copy_const_reference)'),
    ('getTransparency','return_value_policy(copy_const_reference)'),
    ('getLit','return_value_policy(copy_const_reference)'),
    ('getColorMaterial','return_value_policy(copy_const_reference)'),],    [],
   [],
    [], True ]
genFCFile(simp_material_info)

st_material_info = ["SimpleTexturedMaterial", "SimpleMaterial",
    ['getSFImage','getSFMinFilter','getSFMagFilter','getSFEnvMode','getSFEnvMap'],
    [('getImage','return_value_policy(copy_const_reference)'),
    ('getMinFilter','return_value_policy(copy_const_reference)'),
    ('getMagFilter','return_value_policy(copy_const_reference)'),
    ('getEnvMode','return_value_policy(copy_const_reference)'),
    ('getEnvMap','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(st_material_info)

mp_material_info = ["MultiPassMaterial", "Material",
    ['getMFMaterials'],
    [('getMaterials','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(mp_material_info)


image_info = ["Image", "AttachmentContainer",
    ['getMFParents','getSFDimension','getSFWidth','getSFHeight','getSFDepth',
     'getSFBpp','getSFMipMapCount','getSFFrameCount','getSFFrameDelay',
     'getSFPixelFormat','getMFPixel','getSFFrameSize','getSFName','getSFDataType',
     'getSFSideCount','getSFSideSize','getSFForceCompressedData',
     'getSFForceAlphaChannel','getSFForceColorChannel',],
    [('getDimension','return_value_policy(copy_const_reference)'),
     ('getWidth','return_value_policy(copy_const_reference)'),
     ('getHeight','return_value_policy(copy_const_reference)'),
     ('getDepth','return_value_policy(copy_const_reference)'),
     ('getBpp','return_value_policy(copy_const_reference)'),
     ('getMipMapCount','return_value_policy(copy_const_reference)'),
     ('getFrameCount','return_value_policy(copy_const_reference)'),
     ('getFrameDelay','return_value_policy(copy_const_reference)'),
     ('getPixelFormat','return_value_policy(copy_const_reference)'),
     ('getFrameSize','return_value_policy(copy_const_reference)'),
     ('getName','return_value_policy(copy_const_reference)'),
     ('getDataType','return_value_policy(copy_const_reference)'),
     ('getSideCount','return_value_policy(copy_const_reference)'),
     ('getSideSize','return_value_policy(copy_const_reference)'),
     ('getForceCompressedData','return_value_policy(copy_const_reference)'),
     ('getForceAlphaChannel','return_value_policy(copy_const_reference)'),
     ('getForceColorChannel','return_value_policy(copy_const_reference)'),
     ('getParents','return_value_policy(copy_const_reference)'),
     ('getPixel','return_value_policy(copy_const_reference)'),],
    [],
    [('getData','return_internal_reference(1)'),
     ('getDataByTime','return_internal_reference(1)'),
     ('findAttachmentField','return_internal_reference(1)'),],
    [], True ]
genFCFile(image_info)


# ------- Chunks ------- #
fileCounter = 400

chunk_info = ["StateChunk", "Attachment",
    [],
    [],
    ['getClass','getStaticClass'],
   [],
    [], True ]
genFCFile(chunk_info)

chunk_info = ["BlendChunk", "StateChunk",
    ['getSFSrcFactor','getSFDestFactor','getSFEquation','getSFColor','getSFAlphaFunc',
     'getSFAlphaSrcFactor','getSFAlphaDestFactor','getSFAlphaValue'],
    [('getSrcFactor','return_value_policy(copy_const_reference)'),
    ('getDestFactor','return_value_policy(copy_const_reference)'),
    ('getEquation','return_value_policy(copy_const_reference)'),
    ('getColor','return_value_policy(copy_const_reference)'),
    ('getAlphaFunc','return_value_policy(copy_const_reference)'),
    ('getAlphaValue','return_value_policy(copy_const_reference)'),
    ('getAlphaSrcFactor','return_value_policy(copy_const_reference)'),
    ('getAlphaDestFactor','return_value_policy(copy_const_reference)'),],
    ['getClass','getStaticClass'],
    [], 
   [],
    True ]
genFCFile(chunk_info)

chunk_info = ["ClipPlaneChunk", "StateChunk",
    ['getSFEquation','getSFEnable','getSFBeacon'],
    [('getEquation','return_value_policy(copy_const_reference)'),
    ('getEnable','return_value_policy(copy_const_reference)'),
    ('getBeacon','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(chunk_info)

chunk_info = ["ColorMaskChunk", "StateChunk",
    ['getSFMaskR','getSFMaskG','getSFMaskB','getSFMaskA'],
    [('getMaskR','return_value_policy(copy_const_reference)'),
    ('getMaskG','return_value_policy(copy_const_reference)'),
    ('getMaskB','return_value_policy(copy_const_reference)'),
    ('getMaskA','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(chunk_info)

chunk_info = ["DepthChunk", "StateChunk",
    ['getSFEnable','getSFFunc','getSFNear','getSFFar','getSFReadOnly'],
    [('getEnable','return_value_policy(copy_const_reference)'),
    ('getFunc','return_value_policy(copy_const_reference)'),
    ('getNear','return_value_policy(copy_const_reference)'),
    ('getFar','return_value_policy(copy_const_reference)'),
    ('getReadOnly','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(chunk_info)


chunk_info = ["LightChunk", "StateChunk",
    ['getSFDiffuse','getSFAmbient','getSFSpecular','getSFPosition','getSFDirection','getSFExponent',
     'getSFCutoff','getSFConstantAttenuation','getSFLinearAttenuation','getSFQuadraticAttenuation',
    ],
    [('getDiffuse','return_value_policy(copy_const_reference)'),
    ('getAmbient','return_value_policy(copy_const_reference)'),
    ('getSpecular','return_value_policy(copy_const_reference)'),
    ('getPosition','return_value_policy(copy_const_reference)'),
    ('getDirection','return_value_policy(copy_const_reference)'),
    ('getExponent','return_value_policy(copy_const_reference)'),
    ('getCutoff','return_value_policy(copy_const_reference)'),
    ('getConstantAttenuation','return_value_policy(copy_const_reference)'),
    ('getLinearAttenuation','return_value_policy(copy_const_reference)'),
    ('getQuadraticAttenuation','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(chunk_info)


chunk_info = ["LineChunk", "StateChunk",
    ['getSFWidth','getSFStippleRepeat','getSFStipplePattern','getSFSmooth'],
    [('getWidth','return_value_policy(copy_const_reference)'),
    ('getStippleRepeat','return_value_policy(copy_const_reference)'),
    ('getStipplePattern','return_value_policy(copy_const_reference)'),
    ('getSmooth','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(chunk_info)
    

chunk_info = ["MaterialChunk", "StateChunk",
    ['getSFDiffuse','getSFAmbient','getSFSpecular','getSFEmission','getSFShininess','getSFLit',
     'getSFColorMaterial','getSFBackMaterial','getSFBackDiffuse','getSFBackAmbient',
     'getSFBackSpecular','getSFBackEmission','getSFBackShininess','getSFBackColorMaterial'
    ],
    [('getDiffuse','return_value_policy(copy_const_reference)'),
    ('getAmbient','return_value_policy(copy_const_reference)'),
    ('getSpecular','return_value_policy(copy_const_reference)'),
    ('getEmission','return_value_policy(copy_const_reference)'),
    ('getShininess','return_value_policy(copy_const_reference)'),
    ('getLit','return_value_policy(copy_const_reference)'),
    ('getColorMaterial','return_value_policy(copy_const_reference)'),
    ('getBackMaterial','return_value_policy(copy_const_reference)'),
    ('getBackDiffuse','return_value_policy(copy_const_reference)'),
    ('getBackAmbient','return_value_policy(copy_const_reference)'),
    ('getBackSpecular','return_value_policy(copy_const_reference)'),
    ('getBackEmission','return_value_policy(copy_const_reference)'),
    ('getBackShininess','return_value_policy(copy_const_reference)'),
    ('getBackColorMaterial','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(chunk_info)
    

chunk_info = ["PointChunk", "StateChunk",
    ['getSFSize','getSFSmooth','getSFMinSize','getSFMaxSize','getSFConstantAttenuation',
     'getSFLinearAttenuation','getSFQuadraticAttenuation','getSFFadeThreshold',
     'getSFSprite','getSFRMode'
    ],
    [('getSize','return_value_policy(copy_const_reference)'),
    ('getSmooth','return_value_policy(copy_const_reference)'),
    ('getMinSize','return_value_policy(copy_const_reference)'),
    ('getMaxSize','return_value_policy(copy_const_reference)'),
    ('getConstantAttenuation','return_value_policy(copy_const_reference)'),
    ('getLinearAttenuation','return_value_policy(copy_const_reference)'),
    ('getQuadraticAttenuation','return_value_policy(copy_const_reference)'),
    ('getFadeThreshold','return_value_policy(copy_const_reference)'),
    ('getSprite','return_value_policy(copy_const_reference)'),
    ('getRMode','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(chunk_info)
    

chunk_info = ["PolygonChunk", "StateChunk",
    ['getSFCullFace','getSFFrontFace','getSFFrontMode','getSFBackMode','getSFSmooth','getSFOffsetFactor',
     'getSFOffsetBias','getSFOffsetPoint','getSFOffsetLine','getSFOffsetFill','getMFStipple'
    ],
    [('getCullFace','return_value_policy(copy_const_reference)'),
    ('getFrontFace','return_value_policy(copy_const_reference)'),
    ('getFrontMode','return_value_policy(copy_const_reference)'),
    ('getBackMode','return_value_policy(copy_const_reference)'),
    ('getSmooth','return_value_policy(copy_const_reference)'),
    ('getOffsetFactor','return_value_policy(copy_const_reference)'),
    ('getOffsetBias','return_value_policy(copy_const_reference)'),
    ('getOffsetPoint','return_value_policy(copy_const_reference)'),
    ('getOffsetLine','return_value_policy(copy_const_reference)'),
    ('getOffsetFill','return_value_policy(copy_const_reference)'),
    ('getStipple','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(chunk_info)


chunk_info = ["ProgramChunk", "StateChunk",
    ['getSFProgram','getMFParamValues','getMFParamNames'],
    [('getProgram','return_value_policy(copy_const_reference)'),
    ('getParamValues','return_value_policy(copy_const_reference)'),
    ('getParamNames','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(chunk_info)

chunk_info = ["FragmentProgramChunk", "ProgramChunk",
    [],
    [],
    [],
   [],
    [], True ]
genFCFile(chunk_info)

chunk_info = ["VertexProgramChunk", "ProgramChunk",
    [],
    [],
    [],
   [],
    [], True ]
genFCFile(chunk_info)

chunk_info = ["ShaderParameterChunk", "StateChunk",
    ['getMFParameters'],
    [('getParameters','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(chunk_info)


chunk_info = ["ShaderChunk", "ShaderParameterChunk",
    ['getSFVertexProgram','getSFFragmentProgram'],
    [    ('getVertexProgram','return_value_policy(copy_const_reference)'),
    ('getFragmentProgram','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(chunk_info)


chunk_info = ["SHLChunk", "ShaderChunk",
    ['getSFCgFrontEnd','getSFGLId'],
    [    ('getCgFrontEnd','return_value_policy(copy_const_reference)'),
    ('getGLId','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(chunk_info)


chunk_info = ["StencilChunk", "StateChunk",
    ['getSFStencilFunc','getSFStencilValue','getSFStencilMask','getSFStencilOpFail',
     'getSFStencilOpZFail','getSFStencilOpZPass','getSFClearBuffer'],
    [    ('getStencilFunc','return_value_policy(copy_const_reference)'),
    ('getStencilValue','return_value_policy(copy_const_reference)'),
    ('getStencilMask','return_value_policy(copy_const_reference)'),
    ('getStencilOpFail','return_value_policy(copy_const_reference)'),
    ('getStencilOpZFail','return_value_policy(copy_const_reference)'),
    ('getStencilOpZPass','return_value_policy(copy_const_reference)'),
    ('getClearBuffer','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(chunk_info)

chunk_info = ["TexGenChunk", "StateChunk",
    ['getSFGenFuncS','getSFGenFuncT','getSFGenFuncR','getSFGenFuncQ',
     'getSFGenFuncSPlane','getSFGenFuncTPlane','getSFGenFuncRPlane',
     'getSFGenFuncQPlane','getSFSBeacon','getSFTBeacon',
     'getSFRBeacon','getSFQBeacon'
    ],
    [('getGenFuncS','return_value_policy(copy_const_reference)'),
    ('getGenFuncT','return_value_policy(copy_const_reference)'),
    ('getGenFuncR','return_value_policy(copy_const_reference)'),
    ('getGenFuncQ','return_value_policy(copy_const_reference)'),
    ('getGenFuncSPlane','return_value_policy(copy_const_reference)'),
    ('getGenFuncTPlane','return_value_policy(copy_const_reference)'),
    ('getGenFuncRPlane','return_value_policy(copy_const_reference)'),
    ('getGenFuncQPlane','return_value_policy(copy_const_reference)'),
    ('getSBeacon','return_value_policy(copy_const_reference)'),
    ('getTBeacon','return_value_policy(copy_const_reference)'),
    ('getRBeacon','return_value_policy(copy_const_reference)'),
    ('getQBeacon','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(chunk_info)

chunk_info = ["TextureChunk", "StateChunk",
    ['getSFImage','getSFInternalFormat','getSFExternalFormat',
     'getSFScale','getSFFrame','getSFMinFilter','getSFMagFilter',
     'getSFWrapS','getSFWrapT','getSFWrapR','getSFEnvMode','getSFEnvColor',
     'getSFEnvCombineRGB','getSFEnvCombineAlpha','getSFEnvScaleRGB',
     'getSFEnvScaleAlpha','getSFEnvSource0RGB','getSFEnvSource1RGB',
     'getSFEnvSource2RGB','getSFEnvSource0Alpha','getSFEnvSource1Alpha',
     'getSFEnvSource2Alpha','getSFEnvOperand0RGB','getSFEnvOperand1RGB',
     'getSFEnvOperand2RGB','getSFEnvOperand0Alpha','getSFEnvOperand1Alpha',
     'getSFEnvOperand2Alpha','getSFGLId','getSFIgnoreGLForAspect',
     'getSFPointSprite','getSFPriority','getSFShaderOperation',
     'getSFShaderInput','getMFShaderOffsetMatrix','getSFShaderOffsetScale',
     'getSFShaderOffsetBias','getSFShaderRGBADotProduct','getSFShaderCullModes',
     'getSFShaderConstEye','getSFLodBias','getSFTarget','getSFDirtyLeft',
     'getSFDirtyMinX','getSFDirtyMaxX','getSFDirtyMinY','getSFDirtyMaxY',
     'getSFDirtyMinZ','getSFDirtyMaxZ'],
    [('getImage','return_value_policy(copy_const_reference)'),
    ('getInternalFormat','return_value_policy(copy_const_reference)'),
    ('getExternalFormat','return_value_policy(copy_const_reference)'),
    ('getScale','return_value_policy(copy_const_reference)'),
    ('getFrame','return_value_policy(copy_const_reference)'),
    ('getMinFilter','return_value_policy(copy_const_reference)'),
    ('getMagFilter','return_value_policy(copy_const_reference)'),
    ('getWrapS','return_value_policy(copy_const_reference)'),
    ('getWrapT','return_value_policy(copy_const_reference)'),
    ('getWrapR','return_value_policy(copy_const_reference)'),
    ('getEnvMode','return_value_policy(copy_const_reference)'),
    ('getEnvColor','return_value_policy(copy_const_reference)'),
    ('getEnvCombineRGB','return_value_policy(copy_const_reference)'),
    ('getEnvCombineAlpha','return_value_policy(copy_const_reference)'),
    ('getEnvScaleRGB','return_value_policy(copy_const_reference)'),
    ('getEnvScaleAlpha','return_value_policy(copy_const_reference)'),
    ('getEnvSource0RGB','return_value_policy(copy_const_reference)'),
    ('getEnvSource1RGB','return_value_policy(copy_const_reference)'),
    ('getEnvSource2RGB','return_value_policy(copy_const_reference)'),
    ('getEnvSource0Alpha','return_value_policy(copy_const_reference)'),
    ('getEnvSource1Alpha','return_value_policy(copy_const_reference)'),
    ('getEnvSource2Alpha','return_value_policy(copy_const_reference)'),
    ('getEnvOperand0RGB','return_value_policy(copy_const_reference)'),
    ('getEnvOperand1RGB','return_value_policy(copy_const_reference)'),
    ('getEnvOperand2RGB','return_value_policy(copy_const_reference)'),
    ('getEnvOperand0Alpha','return_value_policy(copy_const_reference)'),
    ('getEnvOperand1Alpha','return_value_policy(copy_const_reference)'),
    ('getEnvOperand2Alpha','return_value_policy(copy_const_reference)'),
    ('getGLId','return_value_policy(copy_const_reference)'),
    ('getIgnoreGLForAspect','return_value_policy(copy_const_reference)'),
    ('getPointSprite','return_value_policy(copy_const_reference)'),
    ('getPriority','return_value_policy(copy_const_reference)'),
    ('getShaderOperation','return_value_policy(copy_const_reference)'),
    ('getShaderInput','return_value_policy(copy_const_reference)'),
    ('getShaderOffsetScale','return_value_policy(copy_const_reference)'),
    ('getShaderOffsetBias','return_value_policy(copy_const_reference)'),
    ('getShaderRGBADotProduct','return_value_policy(copy_const_reference)'),
    ('getShaderCullModes','return_value_policy(copy_const_reference)'),
    ('getShaderConstEye','return_value_policy(copy_const_reference)'),
    ('getLodBias','return_value_policy(copy_const_reference)'),
    ('getTarget','return_value_policy(copy_const_reference)'),
    ('getDirtyLeft','return_value_policy(copy_const_reference)'),
    ('getDirtyMinX','return_value_policy(copy_const_reference)'),
    ('getDirtyMaxX','return_value_policy(copy_const_reference)'),
    ('getDirtyMinY','return_value_policy(copy_const_reference)'),
    ('getDirtyMaxY','return_value_policy(copy_const_reference)'),
    ('getDirtyMinZ','return_value_policy(copy_const_reference)'),
    ('getDirtyMaxZ','return_value_policy(copy_const_reference)'),
    ('getShaderOffsetMatrix','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(chunk_info)


chunk_info = ["CubeTextureChunk", "TextureChunk",
    ['getSFPosZImage','getSFPosXImage','getSFNegXImage','getSFPosYImage',
     'getSFNegYImage','getSFIsReflectionMap'],
    [('getPosZImage','return_value_policy(copy_const_reference)'),
    ('getPosXImage','return_value_policy(copy_const_reference)'),
    ('getNegXImage','return_value_policy(copy_const_reference)'),
    ('getPosYImage','return_value_policy(copy_const_reference)'),
    ('getNegYImage','return_value_policy(copy_const_reference)'),
    ('getIsReflectionMap','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(chunk_info)

chunk_info = ["TwoSidedLightingChunk", "StateChunk",
    [],
    [],
    [],
   [],
    [], True ]
genFCFile(chunk_info)


sparam_info = ["ShaderParameter", "AttachmentContainer",
    ['getSFName',],
    [('getName','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(sparam_info)

sparam_info = ["ShaderParameterBool", "ShaderParameter",
    ['getSFValue'],
    [('getValue','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(sparam_info)

sparam_info = ["ShaderParameterInt", "ShaderParameter",
    ['getSFValue'],
    [('getValue','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(sparam_info)

sparam_info = ["ShaderParameterMatrix", "ShaderParameter",
    ['getSFValue'],
    [('getValue','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(sparam_info)

sparam_info = ["ShaderParameterReal", "ShaderParameter",
    ['getSFValue'],
    [('getValue','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(sparam_info)

sparam_info = ["ShaderParameterString", "ShaderParameter",
    ['getSFValue'],
    [('getValue','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(sparam_info)

sparam_info = ["ShaderParameterVec2f", "ShaderParameter",
    ['getSFValue'],
    [('getValue','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(sparam_info)

sparam_info = ["ShaderParameterVec3f", "ShaderParameter",
    ['getSFValue'],
    [('getValue','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(sparam_info)

sparam_info = ["ShaderParameterVec4f", "ShaderParameter",
    ['getSFValue'],
    [('getValue','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(sparam_info)

# ---- Cameras, backgrounds, etc. ----- #
fileCounter = 500

background_info = ["Background", "AttachmentContainer",
    [],
    [],
    [],
    [('getClassname','return_value_policy(copy_const_reference)'),],
    ["OpenSG/OSGViewport.h","OpenSG/OSGDrawAction.h"], True ]
genFCFile(background_info)

depth_clear_bg_info = ["DepthClearBackground", "Background",
    [],
    [],
    [],
    [],
    ["OpenSG/OSGDrawAction.h","OpenSG/OSGViewport.h"], 
    True ]
genFCFile(depth_clear_bg_info)

grad_bg_info = ["GradientBackground", "Background",
    [],
    [],
    [],
   [],
    [], True ]
genFCFile(grad_bg_info)


image_bg_info = ["ImageBackground", "Background",
    ['getSFColor','getSFImage','getSFScale',],
    [('getColor','return_value_policy(copy_const_reference)'),
     ('getImage','return_value_policy(copy_const_reference)'),
     ('getScale','return_value_policy(copy_const_reference)'),
     ],
    [],
   [],
    [], True ]
genFCFile(image_bg_info)

passive_bg_info = ["PassiveBackground", "Background",
    [],
    [],
    [],
   [],
    [], True ]
genFCFile(passive_bg_info)


poly_bg_info = ["PolygonBackground", "Background",
    ['getSFMaterial','getMFTexCoords','getMFPositions','getSFNormalizedX','getSFNormalizedY',],
    [('getMaterial','return_value_policy(copy_const_reference)'),
     ('getNormalizedX','return_value_policy(copy_const_reference)'),
     ('getNormalizedY','return_value_policy(copy_const_reference)'),
     ('getTexCoords','return_value_policy(copy_const_reference)'),
     ('getPositions','return_value_policy(copy_const_reference)'),],
    [],
    [],
    [], True ]
genFCFile(poly_bg_info)


sky_bg_info = ["SkyBackground", "Background",
    ['getMFSkyColor','getMFSkyAngle','getMFGroundColor','getMFGroundAngle','getSFSphereRes',
     'getSFBackTexture','getSFBottomTexture','getSFFrontTexture','getSFLeftTexture','getSFRightTexture',
     'getSFTopTexture','getSFBoxInside','getMFTopTexCoord','getMFBottomTexCoord','getMFRightTexCoord',
     'getMFLeftTexCoord','getMFFrontTexCoord','getMFBackTexCoord',],
    [('getSphereRes','return_value_policy(copy_const_reference)'),
     ('getBackTexture','return_value_policy(copy_const_reference)'),
     ('getBottomTexture','return_value_policy(copy_const_reference)'),
     ('getFrontTexture','return_value_policy(copy_const_reference)'),
     ('getLeftTexture','return_value_policy(copy_const_reference)'),
     ('getRightTexture','return_value_policy(copy_const_reference)'),
     ('getTopTexture','return_value_policy(copy_const_reference)'),
     ('getBoxInside','return_value_policy(copy_const_reference)'),
     ('getSkyColor','return_value_policy(copy_const_reference)'),
     ('getSkyAngle','return_value_policy(copy_const_reference)'),
     ('getGroundColor','return_value_policy(copy_const_reference)'),
     ('getGroundAngle','return_value_policy(copy_const_reference)'),
     ('getTopTexCoord','return_value_policy(copy_const_reference)'),
     ('getBottomTexCoord','return_value_policy(copy_const_reference)'),
     ('getRightTexCoord','return_value_policy(copy_const_reference)'),
     ('getLeftTexCoord','return_value_policy(copy_const_reference)'),
     ('getFrontTexCoord','return_value_policy(copy_const_reference)'),
     ('getBackTexCoord','return_value_policy(copy_const_reference)'),
     ],
    [],
   [],
    [], True ]
genFCFile(sky_bg_info)


solid_bg_info = ["SolidBackground", "Background",
    ['getSFColor'],
    [('getColor','return_value_policy(copy_const_reference)'),
     ],
    [],
   [],
    [], True ]
genFCFile(solid_bg_info)


texgrab_bg_info = ["TextureGrabBackground", "Background",
    ['getSFTexture','getSFAutoResize','getSFBindTarget','getSFCopyTarget',],
    [('getTexture','return_value_policy(copy_const_reference)'),
     ('getAutoResize','return_value_policy(copy_const_reference)'),
     ('getBindTarget','return_value_policy(copy_const_reference)'),
     ('getCopyTarget','return_value_policy(copy_const_reference)'),
     ],
    [],
   [],
    [], True ]
genFCFile(texgrab_bg_info)


tex_bg_info = ["TextureBackground", "Background",
    ['getSFColor','getSFTexture','getMFTexCoords','getSFRadialDistortion','getSFCenterOfDistortion','getSFHor','getSFVert',],
    [('getColor','return_value_policy(copy_const_reference)'),
     ('getTexture','return_value_policy(copy_const_reference)'),
     ('getRadialDistortion','return_value_policy(copy_const_reference)'),
     ('getCenterOfDistortion','return_value_policy(copy_const_reference)'),
     ('getHor','return_value_policy(copy_const_reference)'),
     ('getVert','return_value_policy(copy_const_reference)'),
     ('getTexCoords','return_value_policy(copy_const_reference)'),
     ],
    [],
   [],
    [], True ]
genFCFile(tex_bg_info)

# Cameras
cam_info = ["Camera", "AttachmentContainer",
    ['getSFBeacon','getSFNear','getSFFar'],
    [('getBeacon','return_value_policy(copy_const_reference)'),
    ('getNear','return_value_policy(copy_const_reference)'),
    ('getFar','return_value_policy(copy_const_reference)'),],
    [],
    [],
    ["OpenSG/OSGDrawAction.h","OpenSG/OSGViewport.h"], True ]
genFCFile(cam_info)

cam_info = ["CameraDecorator", "Camera",
    ['getSFDecoratee','getSFBeacon','getSFNear','getSFNear','getSFFar'],
    [('getDecoratee','return_value_policy(copy_const_reference)'),
    ('getBeacon','return_value_policy(copy_const_reference)'),
    ('getNear','return_value_policy(copy_const_reference)'),
    ('getFar','return_value_policy(copy_const_reference)'),],
    [],
   [],
    [], True ]
genFCFile(cam_info)


cam_info = ["MatrixCameraDecorator", "CameraDecorator",
    ['getSFPreViewing','getSFPostViewing','getSFPreProjectionTranslation','getSFPostProjectionTranslation','getSFPreProjection','getSFPostProjection',],
    [('getPreViewing','return_value_policy(copy_const_reference)'),
     ('getPostViewing','return_value_policy(copy_const_reference)'),
     ('getPreProjectionTranslation','return_value_policy(copy_const_reference)'),
     ('getPostProjectionTranslation','return_value_policy(copy_const_reference)'),
     ('getPreProjection','return_value_policy(copy_const_reference)'),
     ('getPostProjection','return_value_policy(copy_const_reference)'),
     ],
    [],
   [],
    [], True ]
genFCFile(cam_info)


cam_info = ["StereoCameraDecorator", "CameraDecorator",
    ['getSFLeftEye','getSFEyeSeparation',],
    [('getLeftEye','return_value_policy(copy_const_reference)'),
     ('getEyeSeparation','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(cam_info)

cam_info = ["ProjectionCameraDecorator", "StereoCameraDecorator",
    ['getSFUser','getMFSurface','getSFWidth','getSFHeight',],
    [('getUser','return_value_policy(copy_const_reference)'),
     ('getWidth','return_value_policy(copy_const_reference)'),
     ('getHeight','return_value_policy(copy_const_reference)'),
     ('getSurface','return_value_policy(copy_const_reference)'),
    ],
    [],
    [],
    [], True ]
genFCFile(cam_info)


cam_info = ["ShearedStereoCameraDecorator", "StereoCameraDecorator",
    ['getSFZeroParallaxDistance','getSFOverlap',],
    [('getZeroParallaxDistance','return_value_policy(copy_const_reference)'),
     ('getOverlap','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(cam_info)


cam_info = ["TileCameraDecorator", "CameraDecorator",
    ['getSFLeft','getSFRight','getSFBottom','getSFTop','getSFFullWidth','getSFFullHeight',],
    [('getLeft','return_value_policy(copy_const_reference)'),
     ('getRight','return_value_policy(copy_const_reference)'),
     ('getBottom','return_value_policy(copy_const_reference)'),
     ('getTop','return_value_policy(copy_const_reference)'),
     ('getFullWidth','return_value_policy(copy_const_reference)'),
     ('getFullHeight','return_value_policy(copy_const_reference)'),
    ],
    [],
    [],
    [], True ]
genFCFile(cam_info)

cam_info = ["MatrixCamera", "Camera",
    ['getSFProjectionMatrix','getSFModelviewMatrix',],
    [('getProjectionMatrix','return_value_policy(copy_const_reference)'),
     ('getModelviewMatrix','return_value_policy(copy_const_reference)'),
    ],
    [],
    [],
    ['OpenSG/OSGDrawAction.h','OpenSG/OSGViewport.h'], 
    True ]
genFCFile(cam_info)


cam_info = ["PerspectiveCamera", "Camera",
    ['getSFFov','getSFAspect',],
    [('getFov','return_value_policy(copy_const_reference)'),
     ('getAspect','return_value_policy(copy_const_reference)'),
    ],
    [],
    [],
    [], True ]
genFCFile(cam_info)


cam_info = ["OffCenterPerspectiveCamera", "PerspectiveCamera",
    ['getSFPrincipalPoint',],
    [('getPrincipalPoint','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(cam_info)


# Foreground
fg_info = ["Foreground", "AttachmentContainer",
    ['getSFActive',
    'ActiveFieldMask', 'MTInfluenceMask'],
    [('getActive','return_value_policy(copy_const_reference)'),
    ],
    [],
    [],
    ['OpenSG/OSGViewport.h'], 
    True ]
genFCFile(fg_info)


fg_info = ["GrabForeground", "Foreground",
    ['getSFImage','getSFAutoResize',],
    [('getImage','return_value_policy(copy_const_reference)'),
     ('getAutoResize','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(fg_info)


fg_info = ["FileGrabForeground", "GrabForeground",
    ['getSFName','getSFFrame','getSFIncrement',],
    [('getName','return_value_policy(copy_const_reference)'),
     ('getFrame','return_value_policy(copy_const_reference)'),
     ('getIncrement','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(fg_info)


fg_info = ["ImageForeground", "Foreground",
    ['getMFImages','getMFPositions',],
    [('getImages','return_value_policy(copy_const_reference)'),
     ('getPositions','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(fg_info)


fg_info = ["PolygonForeground", "Foreground",
    ['getSFMaterial','getMFPositions','getMFTexCoords','getSFNormalizedX','getSFNormalizedY',],
    [('getMaterial','return_value_policy(copy_const_reference)'),
     ('getNormalizedX','return_value_policy(copy_const_reference)'),
     ('getNormalizedY','return_value_policy(copy_const_reference)'),
     ('getPositions','return_value_policy(copy_const_reference)'),
     ('getTexCoords','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(fg_info)

fg_info = ["StatisticsForeground", "Foreground",
    ['getMFElementIDs','getSFCollector',],
    [('getCollector','return_value_policy(copy_const_reference)'),
     ('getElementIDs','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(fg_info)


fg_info = ["GraphicStatisticsForeground", "StatisticsForeground",
    ['getMFDescription','getSFLineWidth','getSFBackgroundColor','getSFTextEnabled','getSFBackgroundEnabled','getSFBorderEnabled',],
    [('getLineWidth','return_value_policy(copy_const_reference)'),
     ('getBackgroundColor','return_value_policy(copy_const_reference)'),
     ('getTextEnabled','return_value_policy(copy_const_reference)'),
     ('getBackgroundEnabled','return_value_policy(copy_const_reference)'),
     ('getBorderEnabled','return_value_policy(copy_const_reference)'),
     ('getDescription','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(fg_info)


fg_info = ["SimpleStatisticsForeground", "StatisticsForeground",
    ['getMFFormats','getSFSize','getSFColor',],
    [('getSize','return_value_policy(copy_const_reference)'),
     ('getColor','return_value_policy(copy_const_reference)'),
     ('getFormats','return_value_policy(copy_const_reference)'),
    ],
    [],
    [],
    [], True ]
genFCFile(fg_info)



fg_info = ["TextureGrabForeground", "Foreground",
    ['getSFTexture','getSFAutoResize','getSFBindTarget','getSFCopyTarget',],
    [('getTexture','return_value_policy(copy_const_reference)'),
     ('getAutoResize','return_value_policy(copy_const_reference)'),
     ('getBindTarget','return_value_policy(copy_const_reference)'),
     ('getCopyTarget','return_value_policy(copy_const_reference)'),
    ],
    [],
   [],
    [], True ]
genFCFile(fg_info)










